home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 001-100 / 001-025 / 004 / kermit / error.c < prev    next >
C/C++ Source or Header  |  1995-03-17  |  2KB  |  111 lines

  1. /*    @(#)error.c    1.1    1/26/85    */
  2.  
  3. #include "kermit.h"
  4. #include "errors.h"
  5.  
  6. /*
  7.  *    Externals defined in library.
  8.  */
  9.  
  10. extern int errno;            /* System error return code */
  11. #ifdef unix
  12. extern char *sys_errlist[];        /* Array of error messages */
  13. extern int sys_nerr;            /* Size of sys_errlist[] */
  14. #endif
  15. extern VOID exit ();            /* Close files and exit */
  16. extern int fprintf ();            /* Formatted print to stream */
  17.  
  18. /*
  19.  *    Local functions.
  20.  */
  21.  
  22. static VOID Perror ();
  23.  
  24.  
  25. /*VARARGS1*/
  26. VOID Error (error, arg1)
  27. int error;
  28. char *arg1;
  29. {
  30.     DBUG_ENTER ("Error");
  31.     (VOID) fprintf (stderr, "kermit: ");
  32.     switch (error) {
  33.     case HOST_RAW: 
  34.         (VOID) fprintf (stderr, "can't set host tty to raw mode");
  35.         Perror ();
  36.         break;
  37.     case REMOTE_RAW: 
  38.         (VOID) fprintf (stderr, "can't set remote tty to raw mode");
  39.         Perror ();
  40.         break;
  41.     case HOST_COOKED: 
  42.         (VOID) fprintf (stderr, "can't restore host tty modes");
  43.         Perror ();
  44.         break;
  45.     case REMOTE_COOKED: 
  46.         (VOID) fprintf (stderr, "can't restore remote tty modes");
  47.         Perror ();
  48.         break;
  49.     case HOST_TCGETA: 
  50.         (VOID) fprintf (stderr, "can't get host tty modes");
  51.         Perror ();
  52.         break;
  53.     case REMOTE_TCGETA: 
  54.         (VOID) fprintf (stderr, "can't get remote tty modes");
  55.         Perror ();
  56.         break;
  57.     case REMTTY:
  58.         (VOID) fprintf (stderr, "can't open communication line %s", arg1);
  59.         Perror ();
  60.         break;
  61.     case CONNECT:
  62.         (VOID) fprintf (stderr, "nothing to connect to.\n");
  63.         break;
  64.     case PHOTO:
  65.         (VOID) fprintf (stderr, "can't open photo file %s", arg1);
  66.         Perror ();
  67.         break;
  68.     case RCVFILE:
  69.         (VOID) fprintf (stderr, "can't create file %s", arg1);
  70.         Perror ();
  71.         break;
  72.     case SPEED:
  73.         (VOID) fprintf (stderr, "bad line speed %d\n", arg1);
  74.         break;
  75.     case MODE:
  76.         (VOID) fprintf (stderr, "must specify -c, -s, or -r\n");
  77.         break;
  78.     case NOCONNECT:
  79.         (VOID) fprintf (stderr, "sorry, connect not implemented!\n");
  80.         break;
  81.     default: 
  82.         (VOID) fprintf (stderr, "bug!, bad error code %d\n", error);
  83.         break;
  84.     }
  85.     (VOID) fflush (stderr);
  86.     DBUG_VOID_RETURN;
  87. }
  88.  
  89.  
  90. VOID WrapUp (status)
  91. int status;
  92. {
  93.     DBUG_ENTER ("Wrapup");
  94.     exit (status);
  95.     DBUG_VOID_RETURN;
  96. }
  97.  
  98.  
  99. static VOID Perror ()
  100. {
  101. #ifdef unix
  102.     if (errno > sys_nerr) {
  103.     (VOID) fprintf (stderr, ": !! bad errno %d !!\n", errno);
  104.     } else {
  105.     (VOID) fprintf (stderr, ": %s\n", sys_errlist[errno]);
  106.     }
  107. #else
  108.     (VOID) fprintf (stderr, ": <unknown error %d>!\n", errno);
  109. #endif    /* unix */
  110. }
  111.